(1) Field of the Invention
The present invention relates to SIMD (Single Instruction Multiple Data), which is a technique for increasing processing speed in a microprocessor by applying a same operation to a plurality of operands with one instruction.
(2) Description of the Related Art
In multimedia data processing of images and audio it is often necessary to apply the same calculation processing to an enormous amount of data, for example when a filter is applied to an image to change the color, quality or the like of the image.
An ordinary processor that does not implement SIMD must execute one instruction for each piece of data, and consequently takes a long time to process multimedia data.
In contrast, a processor that implements SIMD is capable of simultaneously processing a plurality of pieces of data with one instruction, and therefore greatly reducing the amount of time required to process multimedia data.
The rise in recent years in multimedia devices has been accompanied by various types of processors being constructed to implement SIMD operation instructions, due to the considerable effectiveness of SIMD as a technique for multimedia data processing.
A 64-bit processor, for example, implements three types of SIMD instructions that execute parallel addition operations: an ADDS 8 instruction that executes eight parallel operations to add pieces of 8-bit data, an ADDS 16 instruction that executes four parallel operations to add pieces of 16-bit data, and an ADDS 32 instruction that executes two parallel operations to add pieces of 32-bit data.
The total number of SIMD operation instructions is the product of the number of data sizes subject to parallel operation and the number of types of operations. Therefore, the number of instructions increases dramatically when a there are a plurality of data sizes.
A large number of instructions makes bit allocation of machine language instructions difficult, and means that a relatively large instruction decoder circuit is required in the processor. This results in increases in cost and power consumption.
In addition, implementing SIMD operations in a RISC instruction set architecture causes problems in that the original advantage of the RISC instruction set architecture, i.e. only executing several tens of instructions, is lost.